home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 1: Comms & Networking / Almathera Ten on Ten - Disc 1: Comms & Networking.iso / amiga-useful / perl / faq / the_perl_5_modulelist < prev   
Encoding:
Text File  |  1995-05-04  |  47.8 KB  |  1,216 lines

  1. Newsgroups: comp.lang.perl,comp.answers,news.answers
  2. From: Tim.Bunce@ig.co.uk (Tim Bunce)
  3. Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!gatech!swrinde!pipex!peernews.demon.co.uk!ig.co.uk!news
  4. Subject: comp.lang.perl The Perl 5 Module List (Reusable Software)
  5. Followup-To: comp.lang.perl
  6. Keywords: FAQ Perl Module Software Reuse
  7. Supersedes: <perl-faq/module-list-1-797486403@ig.co.uk>
  8. Reply-To: Tim Bunce <Tim.Bunce@ig.co.uk>
  9. Posting-Frequency: bi-weekly
  10. Approved: news-answers-request@MIT.EDU
  11. Expires: Tue, 30 May 1995 04:00:01 GMT
  12. Organisation: Paul Ingram Group, Software Systems, +44 483 424424
  13. X-Posting-Host: ignite.demon.co.uk
  14. Date: Tue, 25 Apr 1995 04:00:03 +0000
  15. Message-ID: <perl-faq/module-list-1-798782401@ig.co.uk>
  16. Sender: usenet@demon.co.uk
  17. Lines: 1196
  18. Xref: senator-bedfellow.mit.edu comp.lang.perl:48647 comp.answers:11450 news.answers:42660
  19.  
  20. Posted-By: auto-faq 3.1.1.2
  21. Archive-name: perl-faq/module-list
  22.  
  23.  
  24. The Perl 5 Module List                        Maintained by Tim Bunce
  25. ----------------------                        <Tim.Bunce@ig.co.uk>
  26.                                               $Revision: 2.5 $
  27. Contents
  28.  
  29.      Introduction
  30.      Playing Your Part
  31.      How To Get an More Recent Copy
  32.      Editorial Information
  33.  
  34. Part 1 - Modules: Creation, Use and Abuse
  35.  
  36. 1)   Perl 5 Module Terminology
  37. 2)   Guidelines for Module Creation
  38. 3)   Guidelines for Converting Perl 4 Library Scripts into Modules
  39. 4)   Guidelines for Reusing Application Code
  40.  
  41. Part 2 - The Perl 5 Module List
  42.  
  43. 1)   Module Listing Format
  44. 2)   Perl Core Modules and Perl Language Extensions
  45. 3)   Development Support
  46. 4)   Operating System Interfaces
  47. 5)   Networking, Device Control (modems) and InterProcess Communication
  48. 6)   Data Types and Data Type Utilities
  49. 7)   Database Interfaces
  50. 8)   User Interfaces
  51. 9)   Interfaces to / Emulations of Other Programming Languages
  52. 10)  File Names, File Systems, File Locking and File Handles
  53. 11)  Text Processing, Parsing and Searching
  54. 12)  Option, Argument and Parameter Processing
  55. 13)  Internationalization and Locale
  56. 14)  Security and Encryption
  57. 15)  World Wide Web, HTML, HTTP, CGI, MIME
  58. 16)  Server and Daemon Utilities
  59. 17)  Archiving and Compression
  60. 18)+ Image, Pixmap and Bitmap Manipulation
  61. 19)  Miscellaneous Interfaces to Other Software Systems
  62.  
  63. Part 3 - Big Projects Registry
  64.  
  65. 1)   Introduction
  66. 2)   Perl Compiler
  67. 3)   Multi-threading
  68. 4)   Safe Perl
  69. 5)   Object Management Group Interface Definition Language
  70.  
  71. Part 4 - Who's Who and What's Where
  72.  
  73. 1)   Information / Contact Reference Details
  74. 2)   Perl Frequently Asked Questions (FAQ) Files 
  75. 3)   Perl Archives
  76.  
  77.  
  78. Key: '+' indicates a new item or section,
  79.      '!' indicates a changed item or section.
  80.  
  81.  
  82. =======================================================================
  83.  
  84. Introduction
  85.  
  86. This document is a semi-formal list of Perl 5 Modules. The Perl 4
  87. concept of packages has been extended in Perl 5 and a new standardised
  88. form of reusable software component has been defined: the Module.
  89.  
  90. Perl 5 Modules typically conform to certain guidelines which make them
  91. easier to use, reuse, integrate and extend.
  92.  
  93. This list will posted to comp.lang.perl on a semi-regular basis.
  94. It has two key aims:
  95.  
  96.  1. FOR DEVELOPERS: To change duplication of effort into cooperation.
  97.  
  98.  2. FOR USERS: To quickly locate existing software which can be reused.
  99.  
  100. This list includes the Perl 5 standard modules, other completed modules,
  101. work-in-progress modules and would-be-nice-to-have ideas for modules.
  102. It also includes guidelines for those wishing to create new modules
  103. including how to name them.
  104.  
  105.  
  106. Playing Your Part
  107.  
  108. Perl is a huge collaborative effort. Everyone who uses perl is
  109. benefiting from the contributions of many hundreds, maybe thousands, of
  110. people. How much time has perl saved you since you started using it?
  111.  
  112. Do you have any modules you could share with others?  For example, you
  113. may have some perl4 scripts from which generally useful, and reusable,
  114. modules could be extracted.  There may be many people who would find
  115. your work very useful.  Please play you part and contribute to the Perl
  116. community where you can. [ end of sermon :-]
  117.  
  118. Help save the world! Please submit new entries and updates to me so I
  119. can keep this list up-to-date. I would prefer changes to be submitted
  120. as context diff's (or just plain diff if your diff does not have a
  121. context diff option) by email to Tim.Bunce@ig.co.uk. No tabs please.
  122.  
  123.  
  124. How To Get a More Recent Copy
  125.  
  126. At the time of writing, this Module List is posted manually by me to
  127. comp.lang.perl on a semi-regular basis (approximately bi-weekly) with a
  128. long expiry time (over a month). The first place to look for a more
  129. recent copy is therefore you own Usenet comp.lang.perl spool area.
  130. I am currently seeking approval for regular posting to *.answers and
  131. archiving on rtfm.mit.edu.
  132.  
  133. You should be able to get a copy from one of these places:
  134.   ftp://ftp.demon.co.uk/pub/perl/db/mod/module-list.txt
  135.   ftp://ftp.icnet.uk/icrf-public/biu/perlmods/modules.list
  136.   ftp://ftp.wpi.edu/perl5/Modules/module_list.txt
  137. (please let me know about any others)
  138.  
  139.  
  140. Editorial Information
  141.  
  142. This document is Copyright (c) 1995 by Tim Bunce. All rights reserved.
  143. Permission to distribute this document, in full or part, via electronic
  144. means (emailed, posted or archived) or printed copy is granted
  145. providing that no charges are involved, reasonable attempt is made to
  146. use the most current version, and all credits and copyright notices are
  147. retained.  Requests for other distribution rights, including
  148. incorporation in commercial products, such as books, magazine articles,
  149. or CD-ROMs should be made to Tim.Bunce@ig.co.uk.
  150.  
  151. Disclaimer: The content of this document is simply a collection of
  152. information gathered from many sources with little or no checking.
  153. There are NO warranties with regard to this information or its use.
  154.  
  155.  
  156.  
  157. =======================================================================
  158.  
  159.  
  160.         Part 1 - Modules: Creation, Use and Abuse
  161.         =========================================
  162.  
  163.  
  164. 1) Perl 5 Module Terminology (a larry-terminology-mini-tutorial)
  165.    -------------------------
  166.  
  167. Perl 5 implements a class using a package, but the presence of a
  168. package doesn't imply the presence of a class.  A package is just a
  169. namespace.  A class is a package that provides subroutines that can be
  170. used as methods.  A method is just a subroutine that expects, as its
  171. first argument, either the name of a package (for "static" methods),
  172. or a reference to something (for "virtual" methods).
  173.  
  174. A module is a file that (by convention) provides a class of the same
  175. name (sans the .pm), plus an import method in that class that can be
  176. called to fetch exported symbols.  This module may implement some of
  177. its methods by loading dynamic C or C++ objects, but that should be
  178. totally transparent to the user of the module.  Likewise, the module
  179. might set up an AUTOLOAD function to slurp in subroutine definitions on
  180. demand, but this is also transparent.  Only the .pm file is required to
  181. exist.
  182.  
  183.  
  184. 2) Guidelines for Module Creation
  185.    ------------------------------
  186.  
  187. 2.1 Do similar modules already exist in some form?
  188.  
  189.    If so, please try to reuse the existing modules either in whole or
  190.    by inheriting useful features into a new class.  If this is not
  191.    practical try to get together with the module authors to work on
  192.    extending or enhancing the functionality of the existing modules.
  193.    A perfect example is the plethora of packages in perl4 for dealing
  194.    with command line options.
  195.  
  196.    If you are writing a module to expand an already existing set of
  197.    modules, please coordinate with the author of the package.  It
  198.    helps if you follow the same naming scheme and module interaction
  199.    scheme as the original author.
  200.  
  201.  
  202. 2.2 Try to design the new module to be easy to extend and reuse.
  203.  
  204.    Use blessed references.  Use the two argument form of bless to bless
  205.    into the class name given as the first parameter of the constructor,
  206.    e.g.,   sub new { my($class) = @_; return bless {}, $class; }
  207.  
  208.    Pass arrays as references so more parameters can be added later
  209.    (it's also faster). Split large functions into smaller more flexible
  210.    ones.  Convert functions into methods where appropriate.
  211.    Inherit methods from other modules if appropriate.
  212.  
  213.    Avoid class name tests like: die "Invalid" unless ref $ref eq 'FOO'.
  214.    Generally you can delete the "eq 'FOO'" part with no harm at all.
  215.    Let the objects look after themselves! Generally, avoid hardwired
  216.    class names as far as possible.
  217.  
  218.    Avoid $r->Class::func() where using @ISA=qw(... Class ...) and
  219.    $r->func() would work (see perlbot man page for more details).
  220.  
  221.    Use autosplit so little used or newly added functions won't be a
  222.    burden to programs which don't use them. Add test functions to
  223.    the module after __END__ either using AutoSplit or by saying:
  224.      eval join('',<main::DATA>) || die $@ unless caller();
  225.  
  226.    Does your module pass the 'empty sub-class' test? If you say
  227.    "@SUBCLASS::ISA = qw(YOURCLASS);" your applications should be able
  228.    to use SUBCLASS in exactly the same way as YOURCLASS.  For example,
  229.    does your application still work if you change:  $obj = new YOURCLASS;
  230.    into: $obj = new SUBCLASS; ?
  231.  
  232. +  Avoid keeping any state information in your packages. It makes it
  233.    difficult for multiple other packages to use yours. Keep state
  234.    information in objects.
  235.  
  236.    Always use -w. Try to "use strict;" (or "use strict qw(...);").
  237.    Remember that you can add "no strict qw(...);" to individual blocks
  238.    of code which need less strictness. Always use -w. Always use -w!
  239.    Follow the guidelines in the perlstyle(1) manual.
  240.  
  241.  
  242. 2.3 Select what to export.
  243.  
  244.    Do NOT export method names!
  245.    Do NOT export anything else by default without a good reason!
  246.  
  247.    Exports pollute the namespace of the module user.  If you must
  248.    export try to use @EXPORT_OK in preference to @EXPORT and avoid
  249.    short or common names to reduce the risk of name clashes.
  250.  
  251.    Generally anything not exported is still accessible from outside the
  252.    module using the ModuleName::item_name (or $blessed_ref->method)
  253.    syntax.  By convention you can use a leading underscore on names to
  254.    informally indicate that they are 'internal' and not for public use.
  255.  
  256.    (It is actually possible to get private functions by saying:
  257.    my $subref = sub { ... };  &$subref; But there's no way to call that
  258.    directly as a method, since a method must have a name in the symbol
  259.    table.)
  260.  
  261.    As a general rule, if the module is trying to be object oriented
  262.    then export nothing. If it's just a collection of functions then
  263.    @EXPORT_OK anything but use @EXPORT with caution.
  264.  
  265.  
  266. 2.4 Select a name for the module.
  267.  
  268.    This name should be as descriptive, accurate and complete as possible.
  269.    Avoid any risk of ambiguity. Always try to use two or more whole words.
  270.    Please use nested module names to group or categorise a module.
  271.  
  272.    Having 57 modules all called Sort will not make life easy for anyone
  273.    (though having 23 called Sort::Quick is only marginally better :-).
  274.    Imagine someone trying to install your module alongside many others.
  275.    If in any doubt ask for suggestions in comp.lang.perl.
  276.  
  277.    If you are developing a suite of related modules/classes it's good
  278.    practice to use nested classes with a common prefix as this will
  279.    avoid namespace clashes. For example:  Xyz::Control, Xyz::View,
  280.    Xyz::Model etc. Use the modules in this list as a naming guide.
  281.  
  282.    If adding a new module to a set, follow the original author's
  283.    standards for naming modules and the interface to methods in
  284.    those modules.
  285.  
  286.    To be portable each component of a module name should be limited to
  287.    11 characters. If it might be used on DOS then try to ensure each is
  288.    unique in the first 8 characters. Nested modules make this easier.
  289.  
  290.  
  291. 2.5 Have you got it right?
  292.  
  293.    How do you know that you've made the right decisions? Have you
  294.    picked an interface design that will cause problems later? Have
  295.    you picked the most appropriate name? Do you have any questions?
  296.  
  297.    The best way to know for sure, and pick up many helpful suggestions,
  298.    is to ask someone who knows. Comp.lang.perl is read by just about
  299.    all the people who develop modules and it's the best place to ask.
  300.  
  301.    All you need to do is post a short summary of the module, its
  302.    purpose and interfaces. A few lines on each of the main methods is
  303.    probably enough. (If you post the whole module it might be ignored
  304.    by busy people - generally the very people you want to read it!)
  305.  
  306.    Don't worry about posting if you can't say when the module will be
  307.    ready - just say so in the message. It might be worth inviting
  308.    others to help you, they may be able to complete it for you!
  309.  
  310.  
  311. 2.6 README and other Additional Files.
  312.  
  313.    It's well known that software developers usually fully document the
  314.    software they write. If, however, the world is in urgent need of
  315.    your software and there is not enough time to write the full
  316.    documentation please at least provide a README file containing:
  317.  
  318.      A description of the module/package/extension etc.
  319.      A copyright notice - see below.
  320.      Prerequisites - what else you may need to have.
  321.      How to build it - possible changes to Makefile.PL etc.
  322.      How to install it.
  323.      Recent changes in this release, especially incompatibilities
  324.      Changes / enhancements you plan to make in the future.
  325.  
  326.    If the README file seems to be getting too large you may wish to
  327.    split out some of the sections into separate files: INSTALL,
  328.    Copying, ToDo etc.
  329.  
  330.  
  331. 2.7 Adding a Copyright Notice.
  332.  
  333.    How you choose to licence your work is a personal decision.
  334.    The general mechanism is to assert your Copyright and then make
  335.    a declaration of how others may copy/use/modify your work.
  336.  
  337.    Perl, for example, is supplied with two types of licence: The GNU
  338.    GPL and The Artistic License (see the files README, Copying and
  339.    Artistic).  Larry has good reasons for NOT just using the GNU GPL.
  340.  
  341.    My personal recommendation, out of respect for Larry, Perl and the
  342.    perl community at large is to simply state something like:
  343.  
  344.      Copyright (c) 1995 Your Name. All rights reserved.
  345.      This program is free software; you can redistribute it and/or
  346.      modify it under the same terms as Perl itself.
  347.  
  348.    This statement should at least appear in the README file. You may
  349.    also wish to include it in a Copying file and your source files.
  350.  
  351.  
  352. 2.8 Give the module a version/issue/release number.
  353.  
  354.    Add a function or method to retrieve the number. Use the number in
  355.    announcements and archive file names when releasing the module
  356.    (ModuleName-1.02.tar.Z). See ExtUtils::MakeMaker.pm for details.
  357.    It's a good idea to use two digits after the decimal point.
  358.  
  359.  
  360. 2.9 How to release and distribute a module.
  361.  
  362.    It's good idea to post an announcement of the availability of your
  363.    module (or the module itself if small) to the comp.lang.perl
  364.    Usenet newsgroup.  This will at least ensure very wide once-off
  365.    distribution.
  366.  
  367.    If possible you should place the module into a major ftp archive and
  368.    include details of it's location in your announcement.
  369.  
  370.    Some notes about ftp archives: Please use a long descriptive file
  371.    name which includes the version number. Most incoming directories
  372.    will not be readable/listable, i.e., you won't be able to see your
  373.    file after uploading it. Send your email notification message as
  374.    soon as possible after uploading else your file may get deleted
  375.    automatically. Allow time for the file to be processed and/or
  376.    check the file has been processed before announcing its location.
  377.  
  378. +  Please remember to send me an updated entry for the Module list!
  379.  
  380.  
  381. 2.10 Take care when changing a released module.
  382.  
  383.    Always strive to remain compatible with previous released versions
  384.    (see 2.2 above) Otherwise try to add a mechanism to revert to the
  385.    old behaviour.
  386.  
  387.  
  388.  
  389. 3) Guidelines for Converting Perl 4 Library Scripts into Modules
  390.    -------------------------------------------------------------
  391.  
  392. 3.1 There is no requirement to convert anything.
  393.  
  394.    If it ain't broke, don't fix it! Perl 4 library scripts should
  395.    continue to work with no problems. You may need to make some minor
  396.    changes (like escaping non-array @'s in double quoted strings) but
  397.    there is no need to convert a .pl file into a Module for just that.
  398.  
  399.  
  400. 3.2 Consider the implications.
  401.  
  402.    All the perl applications which make use of the script will need to
  403.    be changed (slightly) if the script is converted into a module.  Is
  404.    it worth it unless you plan to make other changes at the same time?
  405.  
  406.  
  407. 3.3 Make the most of the opportunity.
  408.  
  409.    If you are going to convert the script to a module you can use the
  410.    opportunity to redesign the interface. The 'Guidelines for Module
  411.    Creation' above include many of the issues you should consider.
  412.  
  413.  
  414. 3.4 The pl2pm utility will get you started.
  415.  
  416.    This utility will read *.pl files (given as parameters) and write
  417.    corresponding *.pm files. The pl2pm utilities does the following:
  418.    - Adds the standard Module prologue lines
  419.    - Converts package specifiers from ' to ::
  420.    - Converts die(...) to croak(...)
  421.    - Several other minor changes
  422.    Being a mechanical process pl2pm is not bullet proof. The converted
  423.    code will need careful checking, especially any package statements.
  424.    Don't delete the original .pl file till the new .pm one works!
  425.  
  426.  
  427.  
  428. 4) Guidelines for Reusing Application Code
  429.    ---------------------------------------
  430.  
  431. 4.1 Complete applications rarely belong in the Perl Module Library.
  432.  
  433. 4.2 Many applications contain some perl code which could be reused.
  434.     Help save the world! Share your code in a form that makes it easy
  435.     to reuse.
  436.  
  437. 4.3 Break-out the reusable code into one or more separate module files.
  438.  
  439. 4.4 Take the opportunity to reconsider and redesign the interfaces.
  440.  
  441. 4.5 In some cases the 'application' can then be reduced to a small
  442.     fragment of code built on top of the reusable modules. In these cases
  443.     the application could invoked as:
  444.          perl -e 'use Module::Name; method(@ARGV)' ...
  445.     or   perl -mModule::Name ...    (in perl5.001?)
  446.  
  447.  
  448.  
  449. =======================================================================
  450.  
  451.  
  452.               Part 2 - The Perl 5 Module List
  453.               ===============================
  454.  
  455.  
  456. The remainder of this document is divided up into sections. Each
  457. section deals with a particular topic and lists all known modules
  458. related to that topic.  Modules are only listed in one section so
  459. check all sections that might related to your particular needs.
  460.  
  461. All the information corresponds to the latest updates I have received.
  462. I don't record the version number or release dates of the listed
  463. Modules. Nor do I record the locations of these Modules. Consult the
  464. contact, try the usual perl archive sites or ask in comp.lang.perl.
  465. Please do *not* ask me directly, I simply don't have the time. Sorry.
  466.  
  467.  
  468. 1) Module Listing Format
  469.  
  470. Each Module listing is very short. The main goal is to simply publish
  471. the existence of the modules, or ideas for modules, and enough contact
  472. information for you to find out more. Each listing includes some
  473. characters which convey (approximate) basic status information.
  474.  
  475. For example:
  476.  
  477. Name           DSLI  Description                                  Info
  478. -------------  ----  -------------------------------------------- -----
  479. Fcntl          Sdcf  Defines fcntl() constants (see File::Lock)   JHI
  480.  
  481. Where the 'DSLI' characters have the following meanings:
  482.  
  483.   D - Development Stage  (Note: *NO* *IMPLIED* *TIMESCALES*!):
  484.     i   - Idea, listed to gain consensus or as a placeholder
  485.     c   - under construction but pre-alpha (not yet released)
  486.     a/b - Alpha/Beta testing
  487.     R   - Released
  488.     M   - Mature (no rigorous definition)
  489.     S   - Standard, supplied with Perl 5
  490.  
  491.   S - Support Level:
  492.     m   - Mailing-list
  493.     d   - Developer
  494.     u   - Usenet newsgroup comp.lang.perl
  495.     n   - None known, try comp.lang.perl
  496.  
  497.   L - Language Used:
  498.     p   - Perl-only, no compiler needed, should be platform independent
  499.     c   - C and perl, a C compiler will be needed
  500.     +   - C++ and perl, a C++ compiler will be needed
  501.     o   - perl and another language other than C or C++
  502.  
  503.   I - Interface Style
  504.     f   - plain Functions, no references used
  505.     r   - some use of unblessed References or ties
  506.     O   - Object oriented using blessed references and/or inheritance
  507.  
  508. Where letters are missing they can usually be inferred from the
  509. others.  For example 'i' implies 'id', 'S' implies 'Su'.
  510.  
  511. The Info column gives a contact reference 'tag'. Lookup this tag in the
  512. "Information / Contact Reference Details" section in Pert 3 of this
  513. document.  If no contact is given always try asking in comp.lang.perl.
  514.  
  515. Most Modules are nested in categories such as IPC::Open2 and IPC::Open3.
  516. These are shown as 'IPC::' on one line then each module listed below
  517. with a '::' prefix.
  518.  
  519.  
  520. Ideas For Adoption
  521.  
  522. Modules listed as in the 'i' Development Stage with no contact
  523. reference are ideas without an owner. Feel free to 'adopt' these but
  524. please let me know so that I can update the list and thus inform anyone
  525. else who might be interested. Adoption simply means that you either
  526. hope to implement the module one day or would like to cooperate with
  527. anyone else who might be interested in implementing it.
  528.  
  529.  
  530. Cooperation
  531.  
  532. Similarly, if an idea that interests you has been adopted by someone
  533. please contact them so you can share ideas.  Just because an idea has
  534. been adopted does NOT imply that it's going to be implemented. Just
  535. because a module is listed and being implemented does NOT mean it'll
  536. get finised. Waiting silently in the hope that the Module will appear
  537. one day is unlikely to be fruitful! Offer to help. Cooperate. Pool your
  538. efforts. Go on, try it!
  539.  
  540. The same applies to modules in all states. Most modules are developed
  541. in limited spare time. If you're interested in a module don't just wait
  542. for it to happen, offer to help!
  543.  
  544. Module developers should feel free to announce incomplete work early.
  545. If you're not going to be able to spend much time on something then say
  546. so. If you invite cooperation maybe someone will implement it for you!
  547.  
  548.  
  549. _______________________________________________________________________
  550.  
  551. 2) Perl Core Modules and Perl Language Extensions
  552.  
  553. Name           DSLI  Description                                  Info
  554. -----------    ----  -------------------------------------------- -----
  555. CORE           Suc   Internal base class for native functions
  556. UNIVERSAL      Suc   Internal universal base-class 
  557. AutoLoader     Sup   Automatic perl module method loader
  558. DynaLoader     Suc   Dynamic loader for shared libraries
  559. Exporter       Sup   Implements default import method for modules
  560. Carp           Sup   Throw exceptions outside current package
  561. Config         Sup   Stores details of perl build configuration
  562. English        Sup   Defines English names for special variables
  563. strict         Sup   Controls averments (similar to pragmas)
  564. integer        Sup   Controls float vs. integer arithmetic
  565. less           Sup   Controls optimisations: 'use less memory;'
  566. subs           Sup   "use subs qw(x y)" is short for "sub x; sub y;"
  567. sigtrap        Sup   For trapping an abort and giving a traceback 
  568. TieHash        Sup   Base class for implementing tied hashes
  569.  
  570. Multithreading for Perl:
  571.  
  572. Plthread       i     Multithreading at Perl level (not O/S level) MICB
  573.  
  574.  
  575. _______________________________________________________________________
  576.  
  577. 3) Development Support
  578.  
  579. Name           DSLI  Description                                  Info
  580. -----------    ----  -------------------------------------------- -----
  581. AutoSplit      Supf  Splits modules into files for AutoLoader
  582. Benchmark      Supf  Easy way to time fragments of perl code
  583. AddINC         adpf  Easy way to manipulate @INC via use          GBARR
  584. DoWhatIWant    i     Does what you want without even asking
  585.  
  586. ExtUtils::
  587. ::MakeMaker    SupO  Writes Makefiles for extensions
  588. ::DynaGlue     i     Utilities/glue code for C<->Perl interfaces
  589.  
  590. Test::
  591. ::Harness      Sup   Executes perl-style tests
  592.  
  593. Devel::
  594. ::DProf        bdcf  Execution profiler (excellent)               DMR
  595. ::Peek         adcf  Interface to internal sv_dump and sv_peek    
  596. ::Debug        i     Function and class debugging support
  597.  
  598.  
  599. _______________________________________________________________________
  600.  
  601. 4) Operating System Interfaces
  602.  
  603. Name           DSLI  Description                                  Info
  604. -----------    ----  -------------------------------------------- -----
  605. POSIX          SupO  An interface to most (all?) of POSIX.1
  606. Fcntl          Sdcf  Defines fcntl() constants (see File::Lock)   JHI
  607. Ioctl          adcf  Defines ioctl() constants                    KJALB
  608. Errno          i     Constants from <errno.h> EACCES, ENOENT etc  JHI
  609.  
  610. BSD::
  611. ::Remote       adpf  getrusage(), s/getrlimit(), s/getpriority()  JHI
  612. ::HostIdent    adpf  s/gethostname(), s/gethostid()               JHI
  613.  
  614. Sys::
  615. ::Hostname     Supf  Implements a portable hostname function
  616. ::Syslog       Supf  Provides same functionality as BSD syslog
  617. ::AlarmCall    Rupf  Timeout on any sub. Allows nested alarms     JACKS
  618.  
  619. MSDOS::
  620. ::SysCalls     adcf  MSDOS interface (interrupts, port I/O)       DMO
  621.  
  622. SGI::
  623. ::SysCalls     cdcf  Interface to SGI-specific system calls       AMOSS
  624. ::GL           adcr  Interface to SGI's Iris GL library           AMOSS
  625. ::FM           adcr  Interface to SGI's Font Management library   AMOSS
  626.  
  627. VMS::
  628. ::SysCalls     i     Interface to VMS-specific system calls       CBAIL
  629. ::Filespec     Sdcf  Interconvert VMS and Unix file name syntax   CBAIL
  630.  
  631.  
  632. _______________________________________________________________________
  633.  
  634. 5) Networking, Device Control (modems) and InterProcess Communication
  635.  
  636. Name           DSLI  Description                                  Info
  637. -----------    ----  -------------------------------------------- -----
  638. Socket         Sucf  Defines all socket-related constants
  639.  
  640. Net::
  641. ::Ping         Supf  Implements TCP/IP ping (currently only echo) PMQS
  642. ::IRC          i     Internet Relay Chat interface                MRG
  643. ::FTP          idpf  Implements File Transfer Protocol interface  GSPAF
  644. ::Telnet       i
  645. ::SOCKS        i     TCP/IP access through firewalls using SOCKS  WSCOT
  646. ::NIS          cdcO  Interface to Sun's NIS                       RIK
  647. ::NISPlus      cdcO  Interface to Sun's NIS+                      RIK
  648.  
  649. Net::
  650. ::Gen          adcO  Generic support for socket usage             SPIDB
  651. ::Inet         adcO  Internet (IP) socket usage                   SPIDB
  652. ::TCP          adcO  TCP-specific socket usage                    SPIDB
  653. ::UDP          cdcO  UDP-specific socket usage                    SPIDB
  654. ::Dnet         cdcO  DECnet-specific socket usage                 SPIDB
  655.  
  656. IPC::
  657. ::Open2        Supf
  658. ::Open3        Supf
  659. ::Chat2        ?     Out-of-service during refit!
  660. ::SysV         i     shared memory, semaphores, messages etc      JHI
  661. ::Mmap         adcf  Interface to Unix's mmap() shared memory     MICB
  662.  
  663. RPC::
  664. ::ONC          i     Open Network Computing (Sun) RPC interface   PKUTS
  665. ::DCE          i     Distributed Computing Environment (OSF) RPCs
  666.  
  667. Chat2          adpf  Basic port of chat2.pl (see also IPC::Chat2) GBARR
  668.  
  669. Proxy          adpO  Transport-independent remote processing      MICB
  670. Proxy::
  671. ::Tk           aucO  Tk transport class for Proxy (part of Tk)    MICB
  672.  
  673. ToolTalk       adcr  Interface to the ToolTalk messaging service  MARCP
  674.  
  675.  
  676. _______________________________________________________________________
  677.  
  678. 6) Data Types and Data Type Utilities (see also Database Interfaces)
  679.  
  680. Name           DSLI  Description                                  Info
  681. -----------    ----  -------------------------------------------- -----
  682. Math::
  683. ::BigInt       SupO  Arbitrary size integer math package          MARCB
  684. ::BigFloat     ?
  685. ::BigRat       ?
  686. ::Complex      adpO  Complex number data type                     DNAD
  687. ::IEEE         i     Interface to ANSI/IEEE Std 754-1985 funcs
  688. ::Pari         adcf  Interface to the PARI library                ILYAZ
  689.  
  690. Array::
  691. ::Vec          idp   Implement array using vec()                  LWALL
  692. ::Substr       idp   Implement array using substr()               LWALL
  693. ::Virtual      idp   Implement array using a file                 LWALL
  694.  
  695. Set::
  696. ::Scalar       adpO  Implement Set of scalars (inc references)    JHI
  697.  
  698. Date::
  699. ::GetDate      adcf  Yacc based free-format date parser in C      TOMC
  700. ::GetDate      adpf  Byacc based free-format date parser in Perl  GBARR
  701. ::CTime        adpf  Updated ctime.pl with mods for timezones     GBARR
  702. ::Time         idpO  Lightweight normalised datetime data type    TIMB
  703. ::Interval     idpO  Lightweight normalised interval data type    TIMB
  704.  
  705. Time::
  706. ::Local        Supf  Implements timelocal() and timegm()
  707. ::Time         adcf  High resolution timers and time-of-day       JHI
  708.  
  709. Tie::
  710. ::SubstrHash   RdpO  Very compact hash stored in a string         LWALL
  711. ::ShiftSplice  i     Defines shift et al in terms of splice       LWALL
  712. ::Mem          adcO  Bind perl variables to memory addresses      PMQS
  713. ::File         adpr  Tie hash to files in a directory             AMW
  714. ::Quick        i     Simple way to create ties                    TIMB
  715. ::Watch        i     Uses Tie::Quick to watch a variable          TIMB
  716.  
  717. Class::
  718. ::Behavior     adpf  General behavior methods for classes         JACKS
  719. ::Eroot        bdpO  Eternal Root - Object persistence            DMR
  720. ::Template     bdpr  Struct/member template builder               DMR
  721.  
  722. Stats::
  723. ::Basic        RdpO  Basic statistical methods                    JKAST
  724.  
  725.  
  726. _______________________________________________________________________
  727.  
  728. 7) Database Interfaces (see also Data Types)
  729.  
  730. Name           DSLI  Description                                  Info
  731. -----------    ----  -------------------------------------------- -----
  732. DBI            amcO  Generic Database Interface (see DBD modules) DBPRL
  733. DBD::
  734. ::Oracle       amcO  Oracle Driver for DBI                        TIMB
  735. ::Ingres       cmcO  Ingres Driver for DBI                        TIMB
  736. ::Msql         cdcO  Msql Driver for DBI                          ANDK
  737. ::DB2          cdcO  DB2 Driver for DBI                           MHM
  738. ::Sybase       idcO  Sybase Driver for DBI                        MEWP
  739.  
  740. Oraperl        ampf  Oraperl emulation interface for DBD::Oracle  TIMB
  741. Ingperl        cmpf  Ingperl emulation interface for DBD::Ingres  TIMB
  742.  
  743. Sybase::
  744. ::DBlib        adcO  Sybase DBlibrary interface                   MEWP
  745. ::Sybperl      adcf  sybperl 1.0xx compatibility module           MEWP
  746. ::CTlib        cdcO  Sybase CTlibrary intgerface                  MEWP
  747.  
  748. Msql           adcf  Mini-SQL, a light weight SQL database        ANDK
  749.  
  750. Tied Hash File Interfaces:
  751.  
  752. NDBM_File      Suc   Tie to NDBM files
  753. DB_File        Suc   Tie to DB files                              PMQS
  754. GDBM_File      Suc   Tie to GDBM files
  755. SDBM_File      Suc   Tie to SDBM files
  756. ODBM_File      Suc   Tie to ODBM files
  757. AnyDBM_File    Sup   Uses first available *_File module above
  758. DBZ_File       adc   Tie to dbz files (mainly for news history)   IANPX !
  759.  
  760. AsciiDB        adp   Generic text database parsing                MICB
  761. Stanza         adp   Text format database used by OSF and IBM     JHI
  762.  
  763. DTREE          cdcf  Interface to Faircom DTREE multikey isam db  JWAT
  764.  
  765.  
  766. _______________________________________________________________________
  767.  
  768. 8) User Interfaces (Character and Graphical)
  769.  
  770. Name           DSLI  Description                                  Info
  771. -----------    ----  -------------------------------------------- -----
  772. Term::
  773. ::Cap          Supf  Basic termcap: Tgetent, Tputs, Tgoto
  774. ::Info         adpf  Terminfo interface (currently just Tput)     KJALB
  775. ::Complete     Supf  Tab word completion using stty raw
  776. ::Readline     adc   GNU Readline, history and completion         KJALB
  777. ::Control      idpf  Basic curses-type screen controls (gotxy)    KJALB
  778. ::Read         cdcf  Terminal reading functions (getkey)          KJALB
  779. ::Pseudo       i     Pseudo terminal (pty) functions
  780.  
  781. Major X-Windows User Interface Tools:
  782.  
  783. Tk             bmcO  Object oriented version of Tk v4             TKML
  784. Sx             adc   Simple Athena widget interface               FMC
  785. Motif          cdcf  Simple Motif and Xt interface                ERICA
  786. Wcl            i     Interface to the Widget Creation Library     TOMH
  787. Fresco         cd+O  Interface to Fresco (post X11R6 version)     BPETH
  788.  
  789. Major Character User Interface Tools:
  790.  
  791. Curses         adcO  Character screen handling and windowing      WPS
  792. Cws            i     Curses Windowing System (OO widgets etc.)    MICB
  793. PV             bmpO  Curses Windowing System (OO widgets etc.)    PVML
  794.  
  795.  
  796. _______________________________________________________________________
  797.  
  798. 9) Interfaces to / Emulations of Other Programming Languages
  799.  
  800. Name           DSLI  Description                                  Info
  801. -----------    ----  -------------------------------------------- -----
  802. Tcl            RdcO  Complete access to Tcl                       MICB
  803. ::Tk           RdcO  Complete access to Tk *via Tcl*              MICB
  804.  
  805. Language::
  806. ::Prolog       adpO  An implementation of Prolog                  JACKS
  807.  
  808. SICStus        adcO  Interface to SICStus Prolog Runtime          CBAIL
  809.  
  810.  
  811. _______________________________________________________________________
  812.  
  813. 10) File Names, File Systems, File Locking and File Handles
  814.  
  815. Name           DSLI  Description                                  Info
  816. -----------    ----  -------------------------------------------- -----
  817. File::
  818. ::Path         Supf  File path and name utilities
  819. ::Basename     Supf  Return basename of a filename
  820. ::CheckTree    Supf  Check file/dir tree against a specification
  821. ::Find         Supf  Call func for every item in a directory tree
  822. ::Lock         adcf  File locking using flock() and lockf()       JHI
  823. ::KGlob        cdcf  Filename globing (ksh style)                 TYEMQ
  824. ::Attrib       idpO  Get/set file attributes (stat)               TYEMQ
  825.  
  826. Cwd            Supf  Current working directory functions
  827. FileHandle     SupO  File handle manipulation functions
  828.  
  829.  
  830. _______________________________________________________________________
  831.  
  832. 11) Text Processing, Parsing and Searching
  833.  
  834. Name           DSLI  Description                                  Info
  835. -----------    ----  -------------------------------------------- -----
  836. Text::
  837. ::Abbrev       Supf  Builds hash of all possible abbreviations
  838. ::ParseWords   Supf  Parse strings containing shell-style quoting
  839. ::Soundex      Supf  Convert a string to a soundex value
  840. ::TeX          cdpO  TeX typesetting language input parser        ILYAZ
  841. ::Trie         adpf  Find common heads and tails from strings     ILYAZ
  842.  
  843. Search::
  844. ::Dict         Supf  Search a dictionary ordered text file
  845.  
  846. SGML::
  847. ::Element      cdpO  Build a SGML element structure tree          LSTAF
  848. ::SP           cd+O  Interface to James Clark's Sp SGML parser    DFD
  849.  
  850.  
  851. _______________________________________________________________________
  852.  
  853. 12) Option, Argument, Parameter and Configuration File Processing
  854.  
  855. Name           DSLI  Description                                  Info
  856. -----------    ----  -------------------------------------------- -----
  857. Getopt::
  858. ::Std          Supf  Implements basic getopt and getopts
  859. ::Long         Supf  Advanced option handling                     JV
  860. ::Gnu          adcf  GNU form of long option handling             WSCOT
  861.  
  862. Usage          Rupr  Type and range checking on subroutine args   JACKS
  863.  
  864. ConfigReader   cdpO  Read directives from configuration file      AMW
  865.  
  866.  
  867. _______________________________________________________________________
  868.  
  869. 13) Internationalization and Locale
  870.  
  871. Name           DSLI  Description                                  Info
  872. -----------    ----  -------------------------------------------- -----
  873. I18N::
  874. ::Collate      bdpr  Locale based comparisons                     JHI
  875. ::WideMulti    i     Wide and multibyte character string          JHI
  876.  
  877.  
  878. _______________________________________________________________________
  879.  
  880. 14) + Security and Encryption
  881.  
  882. Name           DSLI  Description                                  Info
  883. -----------    ----  -------------------------------------------- -----
  884. DES            adcf  DES encryption (libdes)                      EAYNG
  885. Des            adcf  DES encryption (libdes)                      MICB
  886. MD5            adcf  MD5 message digest algorithm                 NWINT !
  887. Kerberos       adcf  Kerberos IV authentication                   MICB
  888. GSS            i     Generic Security Services API (RFC ????)     
  889.  
  890.  
  891. _______________________________________________________________________
  892.  
  893. 15) World Wide Web, HTML, HTTP, CGI, MIME etc (see Text Processing)
  894.  
  895. Name           DSLI  Description                                  Info
  896. -----------    ----  -------------------------------------------- -----
  897. URI::
  898. ::URL          RmpO  Uniform Resource Locator objects             LWWWP
  899.  
  900. CGI::
  901. ::Base         bmpO  Complete HTTPD CGI Interface class           CGIP
  902. ::MiniSvr      ampO  Fork CGI app as a per-session mini server    CGIP
  903. ::Request      bmpO  Parse CGI request and handle form fields     CGIP
  904. ::Form         ampf  Form tools for interactive pages             MGH
  905. ::UnixSocket   cmcf  Runs cgi in background through unix socket   AMW
  906.  
  907. HTML::
  908. ::*            i
  909.  
  910. HTTP::
  911. ::*            i
  912.  
  913. WWW::
  914. ::HTTP         cmpO  Implement HyperText Transfer Protocol        LWWWP
  915. ::Log          i     Parse Common Log File Format
  916. ::Robots       i     Parse /robots.txt file
  917.  
  918. MIME::
  919. ::Header       i     Parse / construct MIME headers
  920. ::Handler      i     Base class for MIME content handlers
  921. ::Object       i     Base class for MIME decoded objects
  922.  
  923.  
  924. _______________________________________________________________________
  925.  
  926. 16) Server and Daemon Utilities
  927.  
  928. Name           DSLI  Description                                  Info
  929. -----------    ----  -------------------------------------------- -----
  930. Server               Hierarchy of generic server classes
  931.  
  932. Server::Configs::
  933. ::BasicConfig  RupO  Configuration template class for servers     JACKS
  934.  
  935. Server::Initialize::
  936. ::Functions    Rupf  Utility functions for initializing servers   JACKS
  937. ::Daemon       Rupr  Intializing a daemon server                  JACKS
  938. ::Pipe         Rupr  Intializing a server being piped to          JACKS
  939. ::InetdService Rupr  Intializing a server started from inetd      JACKS
  940.  
  941. Server::Server::
  942. ::EventDriven  RupO  Triggers objects on i/o, timers & interrupts JACKS
  943.  
  944. Server::Echo::
  945. ::MailPipe     cup   A process which accepts piped mail           JACKS
  946. ::TcpDForking  cup   TCP daemon which forks clients               JACKS
  947. ::TcpDMplx     cup   TCP daemon which multiplexes clients         JACKS
  948. ::TcpISWFork   cup   TCP inetd wait process, forks clients        JACKS
  949. ::TcpISWMplx   cup   TCP inetd wait process, multiplexes clients  JACKS
  950. ::TcpISNowait  cup   TCP inetd nowait process                     JACKS
  951. ::UdpD         cup   UDP daemon                                   JACKS
  952. ::UdpIS        cup   UDP inetd process                            JACKS
  953.  
  954. Server::Inet::
  955. ::Functions    cdpf  Utility functions for Inet socket handling   JACKS
  956. ::Object       cupO  Basic Inet object                            JACKS
  957. ::TcpClientObj cupO  A TCP client (connected) object              JACKS
  958. ::TcpMasterObj cupO  A TCP master (listening) object              JACKS
  959. ::UdpObj       cupO  A UDP object                                 JACKS
  960.  
  961. Server::FileQueue::
  962. ::Functions    cupf  Functions for handling files and mailboxes   JACKS
  963. ::Object       cupO  Basic object                                 JACKS
  964. ::DirQueue     cupO  Files queued in a directory                  JACKS
  965. ::MboxQueue    cupO  Mail queued in a mail box                    JACKS
  966.  
  967. Server::Mail::
  968. ::Functions    cupf  Functions for handling files and mailboxes   JACKS
  969. ::Object       cupO  Basic mail object                            JACKS
  970.  
  971.  
  972. _______________________________________________________________________
  973.  
  974. 17) Archiving and Compression
  975.  
  976. Name           DSLI  Description                                  Info
  977. -----------    ----  -------------------------------------------- -----
  978. Zip            cdcf  Interface to the Info-Zip zlib library       PMQS
  979.  
  980.  
  981. _______________________________________________________________________
  982.  
  983. 18) + Image, Pixmap and Bitmap Manipulation
  984.  
  985. Name           DSLI  Description                                  Info
  986. -----------    ----  -------------------------------------------- -----
  987. PixDraw        cdcO  Drawing and manipulating true color images   KSB   +
  988.  
  989.  
  990. _______________________________________________________________________
  991.  
  992. 19) Miscellaneous Interfaces to Other Software Systems
  993.  
  994. Name           DSLI  Description                                  Info
  995. -----------    ----  -------------------------------------------- -----
  996. Mail::
  997. ::SMTP         i     Protocol support including expn
  998. ::RFC822       adpf  Functions for RFC822 address manipulations   GBARR
  999. ::MH           adcr  MH mail interface                            MRG
  1000. ::Send         i     Simple interface for sending mail
  1001.  
  1002. News::
  1003. ::NNTPClient   adpO  Support for clients of NNTP servers          RVA
  1004.  
  1005. WAIS           Rdcf  Interface to the freeWAIS-sf libraries       ULPFR
  1006. Pcap           i     An interface for LBL's packet capture lib    AMOSS
  1007.  
  1008. Nexus          cdcO  Interface to Nexus (threads/ipc/processes)   RDO
  1009.  
  1010.  
  1011. =======================================================================
  1012.  
  1013.  
  1014.            Part 3 - Big Projects Registry
  1015.            ==============================
  1016.  
  1017.  
  1018. 1) Introduction
  1019.  
  1020. This section of the Module List is devoted to listing "Big Projects".
  1021. I don't want to define Big (or even Project) here. I hope the items
  1022. below speak for themselves. Almost all are just ideas, though some have
  1023. been dabbled with.
  1024.  
  1025. These are ideas for people with very strong skills and lots of time.
  1026. Please talk, and listen, to Larry _before_ starting to do any work on
  1027. projects which relate to the core implementation of Perl.
  1028.  
  1029. Ask not when these will be implemented but ask how you can help
  1030. implement them.
  1031.  
  1032.  
  1033. 2) Items in the Todo File
  1034.  
  1035. The Todo supplied with Perl lists over 60 items in categories ranging
  1036. from "Would be nice to have" to "Vague possibilities".
  1037.  
  1038. Contacts: LWALL P5P
  1039.  
  1040.  
  1041. 2) Perl Compiler
  1042.  
  1043. Part of the design of Perl 5 was to make it possible to write a
  1044. compiler for it. It's a possible master's thesis topic.
  1045.  
  1046. Related to this is the ability to save and load a 'flat' byte-code
  1047. representation of the compiled perl code.
  1048.  
  1049. Note that three different prototype Tcl compilers have recently been
  1050. announced in the comp.lang.tcl group! Anyone interested in this should
  1051. take a good look at the Java language from Sun http://java.sun.com/.
  1052.  
  1053. Contacts: LWALL P5P
  1054.  
  1055.  
  1056. 3) Multi-threading
  1057.  
  1058. This is really two projects. True threads (e.g., POSIX) using multiple
  1059. independant perl interpreter structures and simple timeslicing of
  1060. 'tasks' within a single perl interpreter. True threads requires
  1061. operating system support or an external thread library, simple
  1062. timeslicing does not (and should be portable to all platforms).
  1063.  
  1064. Contacts: LWALL MICB P5P
  1065.  
  1066.  
  1067. 4) Safe Perl
  1068.  
  1069. A mechanism to allow unknown/insecure perl code to be compiled and
  1070. executed in a finely controlled manner. An eventual aim is to enable
  1071. Perl Objects (data+code) to travel between applications (possibly
  1072. across networks).  Similar to the existing Safe-Tcl.
  1073.  
  1074. Contacts: LWALL MICB P5P
  1075.  
  1076.  
  1077. 5) Object Management Group Interface Definition Language
  1078.  
  1079. OMG's (Object Management Group) CORBA 1.1 (Common Object Request Broker
  1080. Architecture) specification provides the standard interface definition
  1081. between OMG-compliant objects.  IDL (Interface Definition Language) is
  1082. the base mechanism for object interaction.  The SunSoft OMG IDL CFE
  1083. (Compiler Front End) provides a complete framework for building CORBA
  1084. 1.1-compliant preprocessors for OMG IDL.  To use SunSoft OMG IDL CFE,
  1085. you must write a back-end; full instructions are included.  A complete
  1086. compiler of IDL would translate IDL into client side and server side
  1087. routines for remote communication in the same manner as the currrent
  1088. Sun RPCL compiler.  Several companies including Sunsoft are building
  1089. back ends to the CFE which translate IDL into target languages, e.g.
  1090. Pascal or C++, in the context of planned CORBA-compliant products.
  1091.  
  1092. Contacts: idl-cfe@sun.com, ftp://omg.org/pub/OMG_IDL/
  1093.  
  1094.  
  1095. 7) Expand Tied Array Interface
  1096.  
  1097. LEN, PUSH, POP, SHIFT, UNSHIFT and a fallback to SPLICE are needed.
  1098. Complicated by very widespread use of arrays within perl internals.
  1099.  
  1100. Contacts: LWALL P5P
  1101.  
  1102.  
  1103. 8) Tied File Handles
  1104.  
  1105. It is a long term goal to allow perl file handles to be tied.
  1106.  
  1107. Contacts: PMQS P5P LWALL
  1108.  
  1109.  
  1110.  
  1111. =======================================================================
  1112.  
  1113.  
  1114.            Part 4 - Who's Who and What's Where
  1115.            ===================================
  1116.  
  1117.  
  1118. 1) Information / Contact Reference Details (in alphabetical order)
  1119.  
  1120.   Ref    Contact Details
  1121.   -----  --------------------------------------------------------------
  1122.   AMOSS  Amos Shapira <amoss@cs.huji.ac.il>
  1123.   AMW    Andrew Wilcox <awilcox@world.std.com>
  1124.   ANDK   Andreas Koenig <k@otto.ww.TU-Berlin.DE>
  1125.   BBUM   Bill Bumgarner <bbum@friday.com>
  1126.   BPETH  Bill Petheram <petheram@acm.org>
  1127.   CBAIL  Charles Bailey <bailey@genetics.upenn.edu>
  1128.   CGIP   The CGI-Perl Developers mailing list <CGI-perl@webstorm.com>
  1129.   DBPRL  DBperl mailing list. <perldb-interest@vix.com>
  1130.   DFD    Dominic Dunlop <dominic@natcorp.ox.ac.uk>
  1131.   DMO    Darryl Okahata <darrylo@sr.hp.com>
  1132.   DMR    Dean Roehrich <roehrich@cray.com>
  1133.   DNAD   Dave Nadler <nadler@apphpp2>
  1134.   EAYNG  Eric Young <eay@mincom.oz.au>
  1135.   ERICA  Eric Arnold <Eric.Arnold@corp.sun.com>
  1136.   FMC    Frederic Chauveau <fmc@pasteur.fr>
  1137.   GBARR  Graham Barr <Graham.Barr@tiuk.ti.com>
  1138.   GSPAF  Gene Spafford <spaf@cs.purdue.edu>
  1139.   IANPX  Ian Phillipps <ian@pipex.net>
  1140.   ILYAZ  Ilya Zakharevich <ilya@math.ohio-state.edu>
  1141.   JACKS  Jack Shirazi <js@biu.icnet.uk>
  1142.   JHI    Jarkko Hietaniemi <Jarkko.Hietaniemi@hut.fi>
  1143.   JKAST  Jason Kastner <jason@wagner.com>
  1144.   JV     Johan Vromans <jv@inter.NL.net>
  1145.   JWAT   John Watson <jwatson@cnj.digex.net>
  1146.   KJALB  Kenneth Albanowski <kjahds@kjahds.com>
  1147. + KSB    Simon Berg <karl@it.kth.se>
  1148.   LSTAF  Lennart Staflin <lenst@lysator.liu.se>
  1149.   LWALL  Larry Wall. Author of Perl. Busy man. <lwall@netlabs.com>
  1150.   LWWWP  libwww-perl mailing list <libwww-perl@ics.uci.edu>
  1151. ! MARCB  Marc Biggar <mab@wdl.loral.com>
  1152.   MARCP  Marc Paquette <Marc.Paquette@crim.ca>
  1153.   MEWP   Michael Peppler <mpeppler@itf.ch>
  1154.   MGH    Marc Hedlund <march@europa.com>
  1155.   MHM    Mike Moran <mhm@austin.ibm.com>
  1156.   MICB   Malcolm Beattie <mbeattie@sable.ox.ac.uk>
  1157.   MRG    Matthew Green <mrg@mame.mu.oz.au>
  1158.   NI-S   Nick Ing-Simmons <nik@tiuk.ti.com>
  1159.   NWINT  Neil Winton <nwinton@axion.bt.co.uk>
  1160.   PKUTS  Peter Kutschera <peter@zditr1.arcs.ac.at>
  1161.   PMQS   Paul Marquess <pmarquess@bfsec.bt.co.uk>
  1162.   P5P    The Perl5 Porters Mailing List <perl5-porters@nicoh.com>
  1163.   PVML   Perl Vision Mailing List <pvision@netropolis.org>
  1164.   RDO    Robert Olson <olson@mcs.anl.gov>
  1165.   RIK    Rik Harris <rik.harris@fulcrum.com.au>
  1166.   RVA    Rodger Anderson <rodger@boi.hp.com>
  1167.   SPIDB  Spider Boardman <spider@orb.nashua.nh.us>
  1168.   TKML   Tk Mailing list <ntk@franz.ww.tu-berlin.de>
  1169.   TOMC   Tom Christiansen <tchrist@mox.perl.com>
  1170.   TOMH   Tom Horsley <tom@ssd.csd.harris.com>
  1171.   TIMB   Tim Bunce <Tim.Bunce@ig.co.uk>
  1172.   TYEMQ  Tye McQueen <tye@metronet.com>
  1173.   UCLP   Usenet: comp.lang.perl, always a good place to enquire
  1174.   ULPFR  Ulrich Pfeifer <pfeifer@woodstock.informatik.uni-dortmund.de>
  1175.   WPS    William Setzer <setzer@math.ncsu.edu>
  1176.   WSCOT  Wayne Scott <wscott@ichips.intel.com>
  1177.  
  1178.  
  1179. 2) Perl Frequently Asked Questions (FAQ) Files
  1180.  
  1181.   Perl Meta-FAQ on the World Wide Web (WWW)
  1182.      http://www.khoros.unm.edu/staff/neilb/perl/metaFAQ
  1183.      http://www.cse.unsw.edu.au/perl/metaFAQ.html
  1184.      http://web.nexor.co.uk/perl/Meta-FAQ.txt
  1185.  
  1186.   Perl FAQ
  1187.      ftp://rtfm.mit.edu/pub/usenet/news.answers/perl-faq/
  1188.      ftp://ftp.uu.net/usenet/news.answers/perl-faq/
  1189.      ftp://ftp.cis.ufl.edu/pub/perl/doc/FAQ
  1190.      ftp://ftp.khoros.unm.edu/pub/perl/faq.gz
  1191.      ftp://ftp.cs.ruu.nl/pub/NEWS.ANSWERS/perl-faq/
  1192.      ftp://ftp.funet.fi/pub/languages/perl/doc/faq
  1193.      ftp://src.doc.ic.ac.uk/packages/perl/FAQ
  1194.  
  1195.  
  1196. 3) ! Some Perl Archives
  1197.  
  1198.   ftp://ftp.cdrom.com:/pub/perl        # mirrors many other perl archives
  1199.   ftp://coombs.anu.edu.au:/pub/perl
  1200.   ftp://ftp.cbi.tamucc.edu/pub/duff/Perl
  1201.   ftp://ftp.cis.ufl.edu/pub/perl
  1202.   ftp://ftp.cs.ruu.nl/pub/PERL
  1203.   ftp://ftp.demon.co.uk/pub/perl
  1204.   ftp://ftp.funet.fi/pub/languages/perl
  1205.   ftp://ftp.khoros.unm.edu/pub/perl
  1206.   ftp://ftp.metronet.com:/pub/perl
  1207.   ftp://ftp.uu.net/languages/perl
  1208.   ftp://ftp.wpi.edu:/perl5
  1209.   ftp://ftp.zrz.tu-berlin.de/pub/unix/perl
  1210.   ftp://perl.com/pub/perl
  1211.   ftp://src.doc.ic.ac.uk/packages/perl
  1212.   ftp://src.doc.ic.ac.uk/packages/perl5
  1213.   ftp://sungear.mame.mu.oz.au/pub/perl
  1214.  
  1215. End.
  1216.